# join方法是让主进程等待子进程代码运行结束之后，在继续运行。不影响其他子进程的执行
from multiprocessing import Process
import time


def task(name, n):
    print('%s is running' % name)
    time.sleep(n)
    print('%s is over' % name)


if __name__ == '__main__':
    # p = Process(target=task, args=('json', 1))
    # p2 = Process(target=task, args=('egon', 2))
    # p3 = Process(target=task, args=('tank', 3))
    # start_time = time.time()
    # # 容器类型:无论里面有几个元素哪怕里面只有一个元素，建议一定要用逗号隔开
    # p.start()  # 告诉操作系统帮你创建一个进程 异步
    # p2.start()  # 告诉操作系统帮你创建一个进程 异步
    # p3.start()  # 告诉操作系统帮你创建一个进程 异步
    # p.join()
    # p2.join()
    # p3.join()

    start_time = time.time()
    p_list = []
    for i in range(1, 4):
        p = Process(target=task, args=(f'子进程{i}', i))
        p.start()
        p_list.append(p)
    for p in p_list:
        p.join()
    print('主', time.time() - start_time)
